Computer virtualization is a technique that involves encapsulating a physical computing machine platform into a virtual machine that is executed under the control of virtualization software running on a single hardware computing platform (also referred to herein as “host system” or “host computer”). A group of hardware computing platforms may be organized as a cluster to provide the hardware resources for virtual machines. In a data center that employs virtual machines, it is common to see hundreds, even thousands, of virtual machines running on multiple clusters of host systems.
A virtualization management software is used by an administrator to manage the configuration of the virtual machines and the allocation of computing resources to the virtual machines. Because of the large number of virtual machines to be managed within a single data center, and sometimes, across multiple data centers, some of the administrator's tasks are automated. For example, software automated techniques such as dynamic resource scheduling and dynamic power management have been developed to assist the administrator in balancing workloads across host systems and powering host systems ON and OFF as needed.
One feature of the virtualized computing environment that is controlled by the virtualization management software is monitoring the status, or “health,” of objects included in the virtualized computing environment. Conventional techniques for monitoring the status of objects include setting alarms. An alarm is triggered when a particular metric associated with the object exceeds a predefined threshold. For example, a virtual machine may be associated with an alarm that is triggered when the CPU (central processing unit) usage of the virtual machine exceeds 80%. A user, such as an administrator, that interacts with the virtualization management software is notified that the alarm has been triggered and can perform some action to remedy the situation.
One problem with conventional monitoring techniques involving alarms is that a separate alarm definition is typically required for each object. As a result, each virtual machine in the virtualized computing environment could be associated with a separate alarm having the same alarm definition. If the administrator desires to modify the alarm for multiple virtual machines, then the administrator would need to manually adjust the parameters of each individual alarm. When a large number of virtual machines is included in the virtual computing environment, managing the various alarms can become time consuming and error prone for the administrator. Additionally, when the virtual computing environment is organized as a hierarchy, conflicts can be created when alarm parameters applied to one object in a hierarchy conflict with alarm parameters of a parent object in the hierarchy.
Accordingly, there remains a need in the art for a user interface for managing a virtualized computing environment that addresses the drawbacks and limitations discussed above.